home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 April: Mac OS SDK / Dev.CD Apr 98 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / PInterfaces / QD3DWinViewer.p < prev    next >
Encoding:
Text File  |  1998-02-12  |  13.2 KB  |  318 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        QD3DWinViewer.p
  3.  
  4.      Contains:    Win32 Viewer Controller Interface File.                                
  5.  
  6.      Version:    Technology:    Quickdraw 3D 1.5.4
  7.                  Release:    Universal Interfaces 3.1
  8.  
  9.      Copyright:    © 1995-1998 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT QD3DWinViewer;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __QD3DWINVIEWER__}
  28. {$SETC __QD3DWINVIEWER__ := 1}
  29.  
  30. {$I+}
  31. {$SETC QD3DWinViewerIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __QD3D__}
  35. {$I QD3D.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED __QD3DGROUP__}
  38. {$I QD3DGroup.p}
  39. {$ENDC}
  40.  
  41.  
  42. {$PUSH}
  43. {$ALIGN POWER}
  44. {$LibExport+}
  45.  
  46. {$IFC TARGET_OS_WIN32 }
  47.  
  48. TYPE
  49.     TQ3ViewerObject                        = Ptr;
  50.  
  51. CONST
  52.     kQ3ViewerShowBadge            = $01;
  53.     kQ3ViewerActive                = $02;
  54.     kQ3ViewerControllerVisible    = $04;
  55.     kQ3ViewerButtonCamera        = $08;
  56.     kQ3ViewerButtonTruck        = $10;
  57.     kQ3ViewerButtonOrbit        = $20;
  58.     kQ3ViewerButtonZoom            = $40;
  59.     kQ3ViewerButtonDolly        = $80;
  60.     kQ3ViewerButtonReset        = $0100;
  61.     kQ3ViewerButtonNone            = $0200;
  62.     kQ3ViewerOutputTextMode        = $0400;
  63.     kQ3ViewerDraggingInOff        = $0800;
  64.     kQ3ViewerDefault            = $8000;
  65.  
  66.  
  67.     kQ3ViewerEmpty                = 0;
  68.     kQ3ViewerHasModel            = $01;
  69.     kQ3ViewerHasUndo            = $02;
  70.  
  71.  
  72. TYPE
  73.     TQ3ViewerCameraView         = LONGINT;
  74. CONST
  75.     kQ3ViewerCameraRestore        = {TQ3ViewerCameraView}0;
  76.     kQ3ViewerCameraFit            = {TQ3ViewerCameraView}1;
  77.     kQ3ViewerCameraFront        = {TQ3ViewerCameraView}2;
  78.     kQ3ViewerCameraBack            = {TQ3ViewerCameraView}3;
  79.     kQ3ViewerCameraLeft            = {TQ3ViewerCameraView}4;
  80.     kQ3ViewerCameraRight        = {TQ3ViewerCameraView}5;
  81.     kQ3ViewerCameraTop            = {TQ3ViewerCameraView}6;
  82.     kQ3ViewerCameraBottom        = {TQ3ViewerCameraView}7;
  83.  
  84.  
  85. {*****************************************************************************
  86.  **                                                                             **
  87.  **                                WM_NOTIFY structures                           **
  88.  **                                                                             **
  89.  ****************************************************************************}
  90.  
  91. TYPE
  92.     TQ3ViewerDropFilesPtr = ^TQ3ViewerDropFiles;
  93.     TQ3ViewerDropFiles = RECORD
  94.         _nmhdr:                    NMHDR;
  95.         hDrop:                    HANDLE;
  96.     END;
  97.  
  98.     TQ3ViewerSetViewPtr = ^TQ3ViewerSetView;
  99.     TQ3ViewerSetView = RECORD
  100.         _nmhdr:                    NMHDR;
  101.         view:                    TQ3ViewerCameraView;
  102.     END;
  103.  
  104.     TQ3ViewerSetViewNumberPtr = ^TQ3ViewerSetViewNumber;
  105.     TQ3ViewerSetViewNumber = RECORD
  106.         _nmhdr:                    NMHDR;
  107.         number:                    UInt32;
  108.     END;
  109.  
  110.     TQ3ViewerButtonSetPtr = ^TQ3ViewerButtonSet;
  111.     TQ3ViewerButtonSet = RECORD
  112.         _nmhdr:                    NMHDR;
  113.         button:                    UInt32;
  114.     END;
  115.  
  116. {*****************************************************************************
  117.  **                                                                             **
  118.  **                                WM_NOTIFY defines                               **
  119.  **                                                                             **
  120.  ****************************************************************************}
  121. {*****************************************************************************
  122.  **                                                                             **
  123.  **                            Win32 Window Class Name                           **
  124.  **        Can be passed as a parameter to CreateWindow or CreateWindowEx       **
  125.  **                                                                             **
  126.  ****************************************************************************}
  127.  
  128. {*****************************************************************************
  129.  **                                                                             **
  130.  **                            Win32 Clipboard type                              **
  131.  **                                                                             **
  132.  ****************************************************************************}
  133. {*****************************************************************************
  134.  **                                                                             **
  135.  **        Return viewer version number                                         **
  136.  **                                                                             **
  137.  ****************************************************************************}
  138. FUNCTION Q3WinViewerGetVersion(VAR majorRevision: UInt32; VAR minorRevision: UInt32): TQ3Status; C;
  139.  
  140. {*****************************************************************************
  141.  **                                                                             **
  142.  **        Return viewer release version number                                 **
  143.  **        (in 'vers' format - e.g. 0x01518000 ==> 1.5.1 release)                 **
  144.  **                                                                             **
  145.  ****************************************************************************}
  146. FUNCTION Q3WinViewerGetReleaseVersion(VAR releaseRevision: UInt32): TQ3Status; C;
  147.  
  148. {*****************************************************************************
  149.  **                                                                             **
  150.  **                        Creation and destruction                             **
  151.  **                Note that this is not a QuickDraw 3D object                     **
  152.  **                                                                             **
  153.  ****************************************************************************}
  154. FUNCTION Q3WinViewerNew(window: HWND; {CONST}VAR rect: RECT; flags: UInt32): TQ3ViewerObject; C;
  155. FUNCTION Q3WinViewerDispose(viewer: TQ3ViewerObject): TQ3Status; C;
  156.  
  157. {*****************************************************************************
  158.  **                                                                             **
  159.  **                    Functions to attach data to a WinViewer                     **
  160.  **                                                                             **
  161.  ****************************************************************************}
  162. FUNCTION Q3WinViewerUseFile(viewer: TQ3ViewerObject; fileHandle: HANDLE): TQ3Status; C;
  163. FUNCTION Q3WinViewerUseData(viewer: TQ3ViewerObject; data: UNIV Ptr; size: UInt32): TQ3Status; C;
  164.  
  165. {*****************************************************************************
  166.  **                                                                             **
  167.  **                Functions to write data out from the WinViewer                 **
  168.  **                                                                             **
  169.  ****************************************************************************}
  170. FUNCTION Q3WinViewerWriteFile(viewer: TQ3ViewerObject; fileHandle: HANDLE): TQ3Status; C;
  171. FUNCTION Q3WinViewerWriteData(viewer: TQ3ViewerObject; data: UNIV Ptr; dataSize: UInt32; VAR actualDataSize: UInt32): TQ3Status; C;
  172.  
  173. {*****************************************************************************
  174.  **                                                                             **
  175.  **        Use this function to force the WinViewer to re-draw                     **
  176.  **                                                                             **
  177.  ****************************************************************************}
  178. FUNCTION Q3WinViewerDraw(viewer: TQ3ViewerObject): TQ3Status; C;
  179. FUNCTION Q3WinViewerDrawContent(viewer: TQ3ViewerObject): TQ3Status; C;
  180. FUNCTION Q3WinViewerDrawControlStrip(viewer: TQ3ViewerObject): TQ3Status; C;
  181.  
  182. {*****************************************************************************
  183.  **                                                                             **
  184.  **        Function used by the WinViewer to filter and handle events             **
  185.  **                                                                             **
  186.  ****************************************************************************}
  187. FUNCTION Q3WinViewerMouseDown(viewer: TQ3ViewerObject; x: LONGINT; y: LONGINT): BOOL; C;
  188. FUNCTION Q3WinViewerContinueTracking(viewer: TQ3ViewerObject; x: LONGINT; y: LONGINT): BOOL; C;
  189. FUNCTION Q3WinViewerMouseUp(viewer: TQ3ViewerObject; x: LONGINT; y: LONGINT): BOOL; C;
  190.  
  191. {*****************************************************************************
  192.  **                                                                             **
  193.  **        This function returns a Bitmap of the contents of the                  **
  194.  **        WinViewer's window.  The application should dispose the Bitmap.         **
  195.  **                                                                             **
  196.  ****************************************************************************}
  197. FUNCTION Q3WinViewerGetBitmap(viewer: TQ3ViewerObject): HBITMAP; C;
  198.  
  199. {*****************************************************************************
  200.  **                                                                             **
  201.  **                    Calls for dealing with Buttons                             **
  202.  **                                                                             **
  203.  ****************************************************************************}
  204. FUNCTION Q3WinViewerGetButtonRect(viewer: TQ3ViewerObject; button: UInt32; VAR rectangle: RECT): TQ3Status; C;
  205. FUNCTION Q3WinViewerGetCurrentButton(viewer: TQ3ViewerObject): UInt32; C;
  206. FUNCTION Q3WinViewerSetCurrentButton(viewer: TQ3ViewerObject; button: UInt32): TQ3Status; C;
  207.  
  208. {*****************************************************************************
  209.  **                                                                             **
  210.  **        Functions to set/get the group to be displayed by the WinViewer.     **
  211.  **                                                                             **
  212.  ****************************************************************************}
  213. FUNCTION Q3WinViewerUseGroup(viewer: TQ3ViewerObject; group: TQ3GroupObject): TQ3Status; C;
  214. FUNCTION Q3WinViewerGetGroup(viewer: TQ3ViewerObject): TQ3GroupObject; C;
  215.  
  216. {*****************************************************************************
  217.  **                                                                             **
  218.  **        Functions to set/get the color used to clear the window                 **
  219.  **                                                                             **
  220.  ****************************************************************************}
  221. FUNCTION Q3WinViewerSetBackgroundColor(viewer: TQ3ViewerObject; VAR color: TQ3ColorARGB): TQ3Status; C;
  222. FUNCTION Q3WinViewerGetBackgroundColor(viewer: TQ3ViewerObject; VAR color: TQ3ColorARGB): TQ3Status; C;
  223.  
  224. {*****************************************************************************
  225.  **                                                                             **
  226.  **        Getting/Setting a WinViewer's View object.  Disposal is needed.         **
  227.  **                                                                             **
  228.  ****************************************************************************}
  229. FUNCTION Q3WinViewerGetView(viewer: TQ3ViewerObject): TQ3ViewObject; C;
  230. FUNCTION Q3WinViewerRestoreView(viewer: TQ3ViewerObject): TQ3Status; C;
  231.  
  232. {*****************************************************************************
  233.  **                                                                             **
  234.  **        Calls for setting/getting WinViewer flags                             **
  235.  **                                                                             **
  236.  ****************************************************************************}
  237. FUNCTION Q3WinViewerSetFlags(viewer: TQ3ViewerObject; flags: UInt32): TQ3Status; C;
  238. FUNCTION Q3WinViewerGetFlags(viewer: TQ3ViewerObject): UInt32; C;
  239.  
  240. {*****************************************************************************
  241.  **                                                                             **
  242.  **        Calls related to bounds/dimensions.  Bounds is the size of              **
  243.  **        the window.  Dimensions can either be the Rect from the ViewHints     **
  244.  **        or the current dimensions of the window (if you do a Set).             **
  245.  **                                                                             **
  246.  ****************************************************************************}
  247. FUNCTION Q3WinViewerSetBounds(viewer: TQ3ViewerObject; VAR bounds: RECT): TQ3Status; C;
  248. FUNCTION Q3WinViewerGetBounds(viewer: TQ3ViewerObject; VAR bounds: RECT): TQ3Status; C;
  249. FUNCTION Q3WinViewerSetDimension(viewer: TQ3ViewerObject; width: UInt32; height: UInt32): TQ3Status; C;
  250. FUNCTION Q3WinViewerGetDimension(viewer: TQ3ViewerObject; VAR width: UInt32; VAR height: UInt32): TQ3Status; C;
  251. FUNCTION Q3WinViewerGetMinimumDimension(viewer: TQ3ViewerObject; VAR width: UInt32; VAR height: UInt32): TQ3Status; C;
  252.  
  253. {*****************************************************************************
  254.  **                                                                             **
  255.  **                            Window related calls                             **
  256.  **                                                                             **
  257.  ****************************************************************************}
  258. FUNCTION Q3WinViewerSetWindow(viewer: TQ3ViewerObject; window: HWND): TQ3Status; C;
  259. FUNCTION Q3WinViewerGetWindow(viewer: TQ3ViewerObject): HWND; C;
  260. FUNCTION Q3WinViewerGetViewer(theWindow: HWND): TQ3ViewerObject; C;
  261. FUNCTION Q3WinViewerGetControlStrip(viewer: TQ3ViewerObject): HWND; C;
  262.  
  263. {*****************************************************************************
  264.  **                                                                             **
  265.  **        Adjust Cursor provided for compatibility with Mac Viewer             **
  266.  **                                                                             **
  267.  ****************************************************************************}
  268. FUNCTION Q3WinViewerAdjustCursor(viewer: TQ3ViewerObject; x: LONGINT; y: LONGINT): TQ3Boolean; C;
  269. FUNCTION Q3WinViewerCursorChanged(viewer: TQ3ViewerObject): TQ3Status; C;
  270.  
  271. {*****************************************************************************
  272.  **                                                                             **
  273.  **        Returns the state of the WinViewer.  See the constant defined at the **
  274.  **        top of this file.                                                     **
  275.  **                                                                             **
  276.  ****************************************************************************}
  277. FUNCTION Q3WinViewerGetState(viewer: TQ3ViewerObject): UInt32; C;
  278.  
  279. {*****************************************************************************
  280.  **                                                                             **
  281.  **                            Clipboard utilities                                 **
  282.  **                                                                             **
  283.  ****************************************************************************}
  284. FUNCTION Q3WinViewerClear(viewer: TQ3ViewerObject): TQ3Status; C;
  285. FUNCTION Q3WinViewerCut(viewer: TQ3ViewerObject): TQ3Status; C;
  286. FUNCTION Q3WinViewerCopy(viewer: TQ3ViewerObject): TQ3Status; C;
  287. FUNCTION Q3WinViewerPaste(viewer: TQ3ViewerObject): TQ3Status; C;
  288.  
  289. {*****************************************************************************
  290.  **                                                                             **
  291.  **                                Undo                                          **
  292.  **                                                                             **
  293.  ****************************************************************************}
  294. FUNCTION Q3WinViewerUndo(viewer: TQ3ViewerObject): TQ3Status; C;
  295. FUNCTION Q3WinViewerGetUndoString(viewer: TQ3ViewerObject; theString: CStringPtr; stringSize: UInt32; VAR actualSize: UInt32): TQ3Boolean; C;
  296.  
  297. {*****************************************************************************
  298.  **                                                                             **
  299.  **                            New Camera Stuff                                 **
  300.  **                                                                             **
  301.  ****************************************************************************}
  302. FUNCTION Q3WinViewerGetCameraCount(viewer: TQ3ViewerObject; VAR count: UInt32): TQ3Status; C;
  303. FUNCTION Q3WinViewerSetCameraNumber(viewer: TQ3ViewerObject; cameraNo: UInt32): TQ3Status; C;
  304. FUNCTION Q3WinViewerSetCameraView(viewer: TQ3ViewerObject; viewType: TQ3ViewerCameraView): TQ3Status; C;
  305. {$ENDC}  {TARGET_OS_WIN32}
  306.  
  307.  
  308. {$ALIGN RESET}
  309. {$POP}
  310.  
  311. {$SETC UsingIncludes := QD3DWinViewerIncludes}
  312.  
  313. {$ENDC} {__QD3DWINVIEWER__}
  314.  
  315. {$IFC NOT UsingIncludes}
  316.  END.
  317. {$ENDC}
  318.